The present invention relates to a hardware device simulation and device driver, and more specifically, to a self-verifying device driver for multi-version compatible data manipulation devices.
A data manipulation device is a hardware based product (e.g., microprocessor). Over the life cycle of the product, multiple different versions of the same physical device may be produced with upgrades or modifications. The underlying data manipulation remains in the same format for every version (backwards and forward compatible) even though different characteristics and options may exist among the versions. The device driver is a computer program that controls the data manipulation device. That is, the device driver provides a software interface to the data manipulation device and is used to issue commands to the data manipulation device to obtain output. The device driver maintains information regarding a pool of data manipulation devices and this pool can have data manipulation devices of multiple versions. The device driver is tested by executing test cases that issue commands to the device driver which in turn builds requests that are presented to the data manipulation device, implemented in hardware or as a simulation. The commands to the device driver from the test case may or may not specify a specific device version which must be used. When there is no device version specified, the device driver may choose any data manipulation device and build a command block for that version. When the device driver is coupled to a particular data manipulation device that it will send requests to, the device driver determines the version of that data manipulation device through a handshake or interrogation process.